aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/[username]/+layout.server.ts
blob: 9a520036523df53f1da5653a1a21103c32fe105c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { get } from "$lib/utils";
import { error } from "@sveltejs/kit";

export let load = async ({
  cookies,
  depends,
  params: { username },
  parent,
}) => {
  depends("app:user");

  try {
    let subject = await get(`/users/${username}`);
    let { user } = await parent();
    if (!user) user = subject;

    let expires = new Date();
    expires.setSeconds(expires.getSeconds() + 380 * 24 * 60 * 60);
    cookies.set("username", username, { path: "/", expires });

    return { subject, user };
  } catch (e) {
    error(500, "Unable to retrieve user account data");
  }
};